/**
 * ajax请求
 *
 * Created by potato on 2017/3/14.
 */
define(function (require, exports, module) {

    function ajax(optionsOverride) {
        var options = {
            url: '#', //url地址，默认"#"
            type: 'GET', //请求方法，仅支持GET,POST,默认GET
            async: true, //是否异步，默认true
            data: null, //发送的数据，该函数不支持处理数据，将会直接发送
            dataType: '', //接受的数据的类型，默认为''
            headers: {
                "Content-Type":"application/x-www-form-urlencoded"
            }, //一个对象，包含请求头信息
            success:function () {}, //处理请求成功的函数
            error: function() {}, //处理请求失败的函数
        };

        for (var k in optionsOverride) {
            options[k] = optionsOverride[k];
        }
        var xhr = new XMLHttpRequest();

        if(options.type.toLowerCase()=="get"){
            xhr.open(options.type, options.url+"?"+data, options.async);
        }else if(options.type.toLowerCase()=="post"){
            xhr.open(options.type, options.url, options.async);
        }

        //设置请求头
        for (var j in options.headers) {
            xhr.setRequestHeader(j, options.headers[j]);
        }
        xhr.responseType = options.dataType;
        xhr.onloadend = function () {
            if (xhr.status >= 200 && xhr.status < 300 || xhr.status == 304) {
                options.success(xhr);
            } else {
                options.error({
                    errorType: 'status_error',
                    xhr: xhr
                });
            }
        };
        xhr.send(options.data);
    }



    module.exports=ajax;
});